<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>扩展的对象的功能</title>
</head>

<body>
    <script>
        // es6直接写入变量和函数，作为对象的属性和方法
        // const name = '小马哥',
        //     age = 20;
        // const person = {
        //     name,//等价于name:name
        //     age,
        //     sayName(){
        //         console.log(this.name);
        //     }
        // }
        // person.sayName();

        // function fn(x,y) {
        //     return {x,y};
        // }
        // console.log(fn(10,20));

        // let cart = {
        //     wheel:4,
        //     set(newVal){
        //         if(newVal < this.wheel){
        //             throw new Error('轮子数太少了')
        //         }
        //         this.wheel = newVal;
        //     },
        //     get(){
        //         return this.wheel;
        //     }
        // }
        // // console.log(cart.get());
        // cart.set(6);
        // console.log(cart.get())

       /*  const obj = {};
        obj.isShow = true;
        const name = 'a';
        obj[name+'bc'] = 123;
        // console.log(obj);
        obj['f'+'bc'] = function () {
            console.log(this);
        }
        console.log(obj); */
       /*  const name = 'a';
        const obj = {
            isShow:true,
            [name+'bc']:123,
            ['f'+name](){
                console.log(this);
                
            }
        }
        console.log(obj); */

        // 对象的方法

        // is() ===
        // 比较两个值是否严格相等
        // console.log(NaN === NaN);
        console.log(Object.is(NaN,NaN));
        // ***** assign() ***
        // 对象的合并
        // Object.assign(target,obj1,obj2....)
        
        // 返回合并之后的新对象
        let newObj = Object.assign({},{a:1},{b:2});
        console.log(newObj);
        
        
        

        
        
        
    </script>

</body>

</html>